﻿//-----------------------------------------------------------------------------------------
// <copyright file="BlipService.Dashboard.cs" company="Jakub Florczyk (www.jakubflorczyk.pl)">
//      Copyright © 2009 Jakub Florczyk (www.jakubflorczyk.pl)
//      http://blipnet.codeplex.com/
// </copyright>
//-----------------------------------------------------------------------------------------

namespace BlipNet
{
    using System;
    using System.Globalization;

    /// <summary>
    /// Blip serwis.
    /// </summary>
    public partial class BlipService
    {
        /// <summary>
        /// Zwraca wiadomości figurujące aktualnie na kokpicie bieżącego użytkownika.
        /// </summary>
        /// <returns>Wiadomości kokpitu.</returns>
        public Message[] GetDashboard()
        {
            return RequestGetMany<Message>("/dashboard");
        }

        /// <summary>
        /// Zwraca wiadomości figurujące aktualnie na kokpicie bieżącego użytkownika.
        /// </summary>
        /// <param name="limit">Limit ilości.</param>
        /// <param name="offset">Ofset ilości.</param>
        /// <returns>Wiadomości kokpitu.</returns>
        public Message[] GetDashboard(int limit, int offset)
        {
            return RequestGetMany<Message>(String.Format(CultureInfo.InvariantCulture, "/dashboard?limit={0}&offset={1}", limit, offset));
        }

        /// <summary>
        /// Zwraca wiadomości figurujące aktualnie na kokpicie bieżącego użytkownika od podanego id.
        /// </summary>
        /// <param name="id">Identyfikator update-u.</param>
        /// <returns>Wiadomości kokpitu.</returns>
        public Message[] GetDashboardSince(int id)
        {
            return RequestGetMany<Message>(String.Format(CultureInfo.InvariantCulture, "/dashboard/since/{0}", id));
        }

        /// <summary>
        /// Zwraca wiadomości figurujące aktualnie na kokpicie podanego użytkownika.
        /// </summary>
        /// <param name="login">Login użytkownika.</param>
        /// <returns>Wiadomości kokpitu.</returns>
        public Message[] GetUserDashboard(string login)
        {
            return RequestGetMany<Message>(String.Format(CultureInfo.InvariantCulture, "/users/{0}/dashboard", login));
        }

        /// <summary>
        /// Zwraca wiadomości figurujące aktualnie na kokpicie podanego użytkownika.
        /// </summary>
        /// <param name="login">Login użytkownika.</param>
        /// <param name="limit">Limit ilości.</param>
        /// <param name="offset">Ofset ilości.</param>
        /// <returns>Wiadomości kokpitu.</returns>
        public Message[] GetUserDashboard(string login, int limit, int offset)
        {
            return RequestGetMany<Message>(String.Format(CultureInfo.InvariantCulture, "/users/{0}/dashboard?limit={1}&offset={2}", login, limit, offset));
        }

        /// <summary>
        /// Zwraca wiadomości figurujące aktualnie na kokpicie podanego użytkownika od podanego id.
        /// </summary>
        /// <param name="login">Login użytkownika.</param>
        /// <param name="id">Identyfikator update-u.</param>
        /// <returns>Wiadomości kokpitu.</returns>
        public Message[] GetUserDashboardSince(string login, int id)
        {
            return RequestGetMany<Message>(String.Format(CultureInfo.InvariantCulture, "/users/{0}/dashboard/since/{1}", login, id));
        }
    }
}
